package com.acmedcare.framework.exchange.center.entity.dto;

import com.acmedcare.framework.exchange.center.entity.bean.SchedulerType;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;


@Data
public class TaskActionDto implements Serializable {

  /**
   * 任务名称
   */
  @ApiModelProperty(value = "任务名称", required = true)
  private String name;

  /**
   * 任务描述
   */
  @ApiModelProperty(value = "任务描述", required = true)
  private String description;
  /**
   * 任务类型
   */

  @ApiModelProperty(value = "任务类型", required = true)
  private TaskTypeEnum type;

  /**
   * 任务类型
   */
  @ApiModelProperty(value = "任务状态", required = true)
  private TaskStatusEnum status;

  /**
   * 任务执行主类
   */
  @ApiModelProperty(value = "任务执行主类", required = true)
  private String executeMainClass;
  /**
   * 依赖jar包（用逗号隔开）
   */
  @ApiModelProperty(value = "提交给依赖的jar文件")
  private String dependJar;
  /**
   * 执行的jar文件
   */
  @ApiModelProperty(value = "执行jar文件", required = true)
  private String executeJar;
  /**
   * 任务版本
   */
  @ApiModelProperty(value = "任务版本", required = true)
  private String version;

  /**
   * 执行时间
   */
  @ApiModelProperty("预计执行时间")
  private Date executeTime;

  /**
   * 执行频次
   */
  @ApiModelProperty("执行cron")
  private String executeCron;
  /**
   * 是否重试
   */
  @ApiModelProperty("是否重试")
  private Boolean matchRetry;
  /**
   * 是否通知
   */
  @ApiModelProperty("是否通知")
  private Boolean matchNotice;

  /**
   * 预警主题
   */
  @ApiModelProperty("预警主题")
  private String noticeTopic;

  @ApiModelProperty("调度类型")
  private SchedulerType schedulerType;

  @ApiModelProperty("任务组名称")
  private String groupName;

  @ApiModelProperty(value = "可执行jar的名称", required = true)
  private String jarName;

  @ApiModelProperty("超时时间,单位分钟")
  private int timeOut;

  @ApiModelProperty("采集器名称")
  private String agentName;

  @ApiModelProperty("插件名称")
  private String pluginName;
}
